home *** CD-ROM | disk | FTP | other *** search
/ Fritz: All Fritz / All Fritz.zip / All Fritz / FILES / PROGMISC / PCSSP.LZH / PC-SSP.ZIP / MATSTOR.ZIP / MSTR.FOR < prev    next >
Text File  |  1985-11-29  |  3KB  |  81 lines

  1. C
  2. C     ..................................................................
  3. C
  4. C        SUBROUTINE MSTR
  5. C
  6. C        PURPOSE
  7. C           CHANGE STORAGE MODE OF A MATRIX
  8. C
  9. C        USAGE
  10. C           CALL MSTR(A,R,N,MSA,MSR)
  11. C
  12. C        DESCRIPTION OF PARAMETERS
  13. C           A - NAME OF INPUT MATRIX
  14. C           R - NAME OF OUTPUT MATRIX
  15. C           N - NUMBER OF ROWS AND COLUMNS IN A AND R
  16. C           MSA - ONE DIGIT NUMBER FOR STORAGE MODE OF MATRIX A
  17. C                  0 - GENERAL
  18. C                  1 - SYMMETRIC
  19. C                  2 - DIAGONAL
  20. C           MSR - SAME AS MSA EXCEPT FOR MATRIX R
  21. C
  22. C        REMARKS
  23. C           MATRIX R CANNOT BE IN THE SAME LOCATION AS MATRIX A
  24. C           MATRIX A MUST BE A SQUARE MATRIX
  25. C
  26. C        SUBROUTINES AND FUNCTION SUBPROGRAMS REQUIRED
  27. C           LOC
  28. C
  29. C        METHOD
  30. C           MATRIX A IS RESTRUCTURED TO FORM MATRIX R.
  31. C            MSA MSR
  32. C             0   0  MATRIX A IS MOVED TO MATRIX R
  33. C             0   1  THE UPPER TRIANGLE ELEMENTS OF A GENERAL MATRIX
  34. C                    ARE USED TO FORM A SYMMETRIC MATRIX
  35. C             0   2  THE DIAGONAL ELEMENTS OF A GENERAL MATRIX ARE USED
  36. C                    TO FORM A DIAGONAL MATRIX
  37. C             1   0  A SYMMETRIC MATRIX IS EXPANDED TO FORM A GENERAL
  38. C                    MATRIX
  39. C             1   1  MATRIX A IS MOVED TO MATRIX R
  40. C             1   2  THE DIAGONAL ELEMENTS OF A SYMMETRIC MATRIX ARE
  41. C                    USED TO FORM A DIAGONAL MATRIX
  42. C             2   0  A DIAGONAL MATRIX IS EXPANDED BY INSERTING MISSING
  43. C                    ZERO ELEMENTS TO FORM A GENERAL MATRIX
  44. C             2   1  A DIAGONAL MATRIX IS EXPANDED BY INSERTING MISSING
  45. C                    ZERO ELEMENTS TO FORM A SYMMETRIC MATRIX
  46. C             2   2  MATRIX A IS MOVED TO MATRIX R
  47. C
  48. C     ..................................................................
  49. C
  50.       SUBROUTINE MSTR(A,R,N,MSA,MSR)
  51.       DIMENSION A(1),R(1)
  52. C
  53.       DO 20 I=1,N
  54.       DO 20 J=1,N
  55. C
  56. C        IF R IS GENERAL, FORM ELEMENT
  57. C
  58.       IF(MSR) 5,10,5
  59. C
  60. C        IF IN LOWER TRIANGLE OF SYMMETRIC OR DIAGONAL R, BYPASS
  61. C
  62.     5 IF(I-J) 10,10,20
  63.    10 CALL LOC(I,J,IR,N,N,MSR)
  64. C
  65. C        IF IN UPPER AND OFF DIAGONAL  OF DIAGONAL R, BYPASS
  66. C
  67.       IF(IR) 20,20,15
  68. C
  69. C        OTHERWISE, FORM R(I,J)
  70. C
  71.    15 R(IR)=0.0
  72.       CALL LOC(I,J,IA,N,N,MSA)
  73. C
  74. C        IF THERE IS NO A(I,J), LEAVE R(I,J) AT 0.0
  75. C
  76.       IF(IA) 20,20,18
  77.    18 R(IR)=A(IA)
  78.    20 CONTINUE
  79.       RETURN
  80.       END
  81.